package com.frank.controller;

import com.frank.pojo.Item;
import com.frank.service.ItemService;
import com.frank.vo.ItemVO;
import com.frank.vo.PageResult;
import com.frank.vo.SysResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * @author Frank
 */
@RestController
@RequestMapping("/item")
@CrossOrigin
public class ItemController {
    @Autowired
    private ItemService itemService;

    /**
     * 业务需求: 商品列表展现
     * URL地址: /item/getItemList?query=&pageNum=1&pageSize=10
     * 参数:    pageResult对象
     * 返回值:  SysResult(pageResult对象)
     * 请求类型：Get
     */
    @GetMapping("/getItemList")
    public SysResult getItemList(PageResult pageResult){
        pageResult = itemService.getItemList(pageResult);
        return SysResult.success(pageResult);
    }

    /**
     * 需求: 实现状态修改
     * URL: /item/updateItemStatus
     * 参数: id/status
     * 类型: put
     * 返回值: SysResult对象
     */
    @PutMapping("/updateItemStatus")
    public SysResult updateItemStatus(@RequestBody Item item){
        try {
            itemService.updateItemStatus(item);
            return SysResult.success();
        }catch (Exception e){
            e.printStackTrace();
            return SysResult.fail();
        }
    }

    /**
     * 实现商品新增操作
     * URL地址: /item/saveItem
     * 请求类型: post请求
     * 参数信息: itemVO对象 JSON
     */
    @PostMapping("/saveItem")
    public SysResult saveItem(@RequestBody ItemVO itemVO){
        itemService.saveItem(itemVO);
        return SysResult.success();
    }

    /**
     * 业务: 实现商品删除操作
     * URL: /item/deleteItemById?id=xxx
     * 参数: id
     * 返回值: SysResult对象
     */
    @DeleteMapping("/deleteItemById")
    public SysResult deleteItemById(Integer id){
        itemService.deleteItemById(id);
        return SysResult.success();
    }


}
